package com.jieshuibao.model.db;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class H5CourseExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private int pageIndex;

    private int pageSize;

    public H5CourseExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setPageIndex(int pageIndex) {
        this.pageIndex=pageIndex;
    }

    public int getPageIndex() {
        return this.pageIndex;
    }

    public void setPageSize(int pageSize) {
        this.pageSize=pageSize;
    }

    public int getPageSize() {
        return this.pageSize;
    }

    public H5CourseExample(int pageIndex, int pageSize) {
        this();
        this.pageIndex=pageIndex;
        this.pageSize=pageSize;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andTitleIsNull() {
            addCriterion("title is null");
            return (Criteria) this;
        }

        public Criteria andTitleIsNotNull() {
            addCriterion("title is not null");
            return (Criteria) this;
        }

        public Criteria andTitleEqualTo(String value) {
            addCriterion("title =", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotEqualTo(String value) {
            addCriterion("title <>", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleGreaterThan(String value) {
            addCriterion("title >", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleGreaterThanOrEqualTo(String value) {
            addCriterion("title >=", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLessThan(String value) {
            addCriterion("title <", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLessThanOrEqualTo(String value) {
            addCriterion("title <=", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLike(String value) {
            addCriterion("title like", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotLike(String value) {
            addCriterion("title not like", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleIn(List<String> values) {
            addCriterion("title in", values, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotIn(List<String> values) {
            addCriterion("title not in", values, "title");
            return (Criteria) this;
        }

        public Criteria andTitleBetween(String value1, String value2) {
            addCriterion("title between", value1, value2, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotBetween(String value1, String value2) {
            addCriterion("title not between", value1, value2, "title");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNull() {
            addCriterion("createDate is null");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNotNull() {
            addCriterion("createDate is not null");
            return (Criteria) this;
        }

        public Criteria andCreateDateEqualTo(Date value) {
            addCriterion("createDate =", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotEqualTo(Date value) {
            addCriterion("createDate <>", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThan(Date value) {
            addCriterion("createDate >", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThanOrEqualTo(Date value) {
            addCriterion("createDate >=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThan(Date value) {
            addCriterion("createDate <", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThanOrEqualTo(Date value) {
            addCriterion("createDate <=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateIn(List<Date> values) {
            addCriterion("createDate in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotIn(List<Date> values) {
            addCriterion("createDate not in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateBetween(Date value1, Date value2) {
            addCriterion("createDate between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotBetween(Date value1, Date value2) {
            addCriterion("createDate not between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeIsNull() {
            addCriterion("trainBeginTime is null");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeIsNotNull() {
            addCriterion("trainBeginTime is not null");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeEqualTo(Date value) {
            addCriterion("trainBeginTime =", value, "trainBeginTime");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeNotEqualTo(Date value) {
            addCriterion("trainBeginTime <>", value, "trainBeginTime");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeGreaterThan(Date value) {
            addCriterion("trainBeginTime >", value, "trainBeginTime");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("trainBeginTime >=", value, "trainBeginTime");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeLessThan(Date value) {
            addCriterion("trainBeginTime <", value, "trainBeginTime");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeLessThanOrEqualTo(Date value) {
            addCriterion("trainBeginTime <=", value, "trainBeginTime");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeIn(List<Date> values) {
            addCriterion("trainBeginTime in", values, "trainBeginTime");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeNotIn(List<Date> values) {
            addCriterion("trainBeginTime not in", values, "trainBeginTime");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeBetween(Date value1, Date value2) {
            addCriterion("trainBeginTime between", value1, value2, "trainBeginTime");
            return (Criteria) this;
        }

        public Criteria andTrainBeginTimeNotBetween(Date value1, Date value2) {
            addCriterion("trainBeginTime not between", value1, value2, "trainBeginTime");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeIsNull() {
            addCriterion("trainEndTime is null");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeIsNotNull() {
            addCriterion("trainEndTime is not null");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeEqualTo(Date value) {
            addCriterion("trainEndTime =", value, "trainEndTime");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeNotEqualTo(Date value) {
            addCriterion("trainEndTime <>", value, "trainEndTime");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeGreaterThan(Date value) {
            addCriterion("trainEndTime >", value, "trainEndTime");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("trainEndTime >=", value, "trainEndTime");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeLessThan(Date value) {
            addCriterion("trainEndTime <", value, "trainEndTime");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("trainEndTime <=", value, "trainEndTime");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeIn(List<Date> values) {
            addCriterion("trainEndTime in", values, "trainEndTime");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeNotIn(List<Date> values) {
            addCriterion("trainEndTime not in", values, "trainEndTime");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeBetween(Date value1, Date value2) {
            addCriterion("trainEndTime between", value1, value2, "trainEndTime");
            return (Criteria) this;
        }

        public Criteria andTrainEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("trainEndTime not between", value1, value2, "trainEndTime");
            return (Criteria) this;
        }

        public Criteria andLocationIsNull() {
            addCriterion("location is null");
            return (Criteria) this;
        }

        public Criteria andLocationIsNotNull() {
            addCriterion("location is not null");
            return (Criteria) this;
        }

        public Criteria andLocationEqualTo(String value) {
            addCriterion("location =", value, "location");
            return (Criteria) this;
        }

        public Criteria andLocationNotEqualTo(String value) {
            addCriterion("location <>", value, "location");
            return (Criteria) this;
        }

        public Criteria andLocationGreaterThan(String value) {
            addCriterion("location >", value, "location");
            return (Criteria) this;
        }

        public Criteria andLocationGreaterThanOrEqualTo(String value) {
            addCriterion("location >=", value, "location");
            return (Criteria) this;
        }

        public Criteria andLocationLessThan(String value) {
            addCriterion("location <", value, "location");
            return (Criteria) this;
        }

        public Criteria andLocationLessThanOrEqualTo(String value) {
            addCriterion("location <=", value, "location");
            return (Criteria) this;
        }

        public Criteria andLocationLike(String value) {
            addCriterion("location like", value, "location");
            return (Criteria) this;
        }

        public Criteria andLocationNotLike(String value) {
            addCriterion("location not like", value, "location");
            return (Criteria) this;
        }

        public Criteria andLocationIn(List<String> values) {
            addCriterion("location in", values, "location");
            return (Criteria) this;
        }

        public Criteria andLocationNotIn(List<String> values) {
            addCriterion("location not in", values, "location");
            return (Criteria) this;
        }

        public Criteria andLocationBetween(String value1, String value2) {
            addCriterion("location between", value1, value2, "location");
            return (Criteria) this;
        }

        public Criteria andLocationNotBetween(String value1, String value2) {
            addCriterion("location not between", value1, value2, "location");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(Double value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(Double value) {
            addCriterion("price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(Double value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(Double value) {
            addCriterion("price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(Double value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(Double value) {
            addCriterion("price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<Double> values) {
            addCriterion("price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<Double> values) {
            addCriterion("price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(Double value1, Double value2) {
            addCriterion("price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(Double value1, Double value2) {
            addCriterion("price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andDesIsNull() {
            addCriterion("des is null");
            return (Criteria) this;
        }

        public Criteria andDesIsNotNull() {
            addCriterion("des is not null");
            return (Criteria) this;
        }

        public Criteria andDesEqualTo(String value) {
            addCriterion("des =", value, "des");
            return (Criteria) this;
        }

        public Criteria andDesNotEqualTo(String value) {
            addCriterion("des <>", value, "des");
            return (Criteria) this;
        }

        public Criteria andDesGreaterThan(String value) {
            addCriterion("des >", value, "des");
            return (Criteria) this;
        }

        public Criteria andDesGreaterThanOrEqualTo(String value) {
            addCriterion("des >=", value, "des");
            return (Criteria) this;
        }

        public Criteria andDesLessThan(String value) {
            addCriterion("des <", value, "des");
            return (Criteria) this;
        }

        public Criteria andDesLessThanOrEqualTo(String value) {
            addCriterion("des <=", value, "des");
            return (Criteria) this;
        }

        public Criteria andDesLike(String value) {
            addCriterion("des like", value, "des");
            return (Criteria) this;
        }

        public Criteria andDesNotLike(String value) {
            addCriterion("des not like", value, "des");
            return (Criteria) this;
        }

        public Criteria andDesIn(List<String> values) {
            addCriterion("des in", values, "des");
            return (Criteria) this;
        }

        public Criteria andDesNotIn(List<String> values) {
            addCriterion("des not in", values, "des");
            return (Criteria) this;
        }

        public Criteria andDesBetween(String value1, String value2) {
            addCriterion("des between", value1, value2, "des");
            return (Criteria) this;
        }

        public Criteria andDesNotBetween(String value1, String value2) {
            addCriterion("des not between", value1, value2, "des");
            return (Criteria) this;
        }

        public Criteria andPresenterIsNull() {
            addCriterion("presenter is null");
            return (Criteria) this;
        }

        public Criteria andPresenterIsNotNull() {
            addCriterion("presenter is not null");
            return (Criteria) this;
        }

        public Criteria andPresenterEqualTo(String value) {
            addCriterion("presenter =", value, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterNotEqualTo(String value) {
            addCriterion("presenter <>", value, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterGreaterThan(String value) {
            addCriterion("presenter >", value, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterGreaterThanOrEqualTo(String value) {
            addCriterion("presenter >=", value, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterLessThan(String value) {
            addCriterion("presenter <", value, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterLessThanOrEqualTo(String value) {
            addCriterion("presenter <=", value, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterLike(String value) {
            addCriterion("presenter like", value, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterNotLike(String value) {
            addCriterion("presenter not like", value, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterIn(List<String> values) {
            addCriterion("presenter in", values, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterNotIn(List<String> values) {
            addCriterion("presenter not in", values, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterBetween(String value1, String value2) {
            addCriterion("presenter between", value1, value2, "presenter");
            return (Criteria) this;
        }

        public Criteria andPresenterNotBetween(String value1, String value2) {
            addCriterion("presenter not between", value1, value2, "presenter");
            return (Criteria) this;
        }

        public Criteria andCollegeIsNull() {
            addCriterion("college is null");
            return (Criteria) this;
        }

        public Criteria andCollegeIsNotNull() {
            addCriterion("college is not null");
            return (Criteria) this;
        }

        public Criteria andCollegeEqualTo(String value) {
            addCriterion("college =", value, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeNotEqualTo(String value) {
            addCriterion("college <>", value, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeGreaterThan(String value) {
            addCriterion("college >", value, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeGreaterThanOrEqualTo(String value) {
            addCriterion("college >=", value, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeLessThan(String value) {
            addCriterion("college <", value, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeLessThanOrEqualTo(String value) {
            addCriterion("college <=", value, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeLike(String value) {
            addCriterion("college like", value, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeNotLike(String value) {
            addCriterion("college not like", value, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeIn(List<String> values) {
            addCriterion("college in", values, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeNotIn(List<String> values) {
            addCriterion("college not in", values, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeBetween(String value1, String value2) {
            addCriterion("college between", value1, value2, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeNotBetween(String value1, String value2) {
            addCriterion("college not between", value1, value2, "college");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoIsNull() {
            addCriterion("collegeInfo is null");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoIsNotNull() {
            addCriterion("collegeInfo is not null");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoEqualTo(String value) {
            addCriterion("collegeInfo =", value, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoNotEqualTo(String value) {
            addCriterion("collegeInfo <>", value, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoGreaterThan(String value) {
            addCriterion("collegeInfo >", value, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoGreaterThanOrEqualTo(String value) {
            addCriterion("collegeInfo >=", value, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoLessThan(String value) {
            addCriterion("collegeInfo <", value, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoLessThanOrEqualTo(String value) {
            addCriterion("collegeInfo <=", value, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoLike(String value) {
            addCriterion("collegeInfo like", value, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoNotLike(String value) {
            addCriterion("collegeInfo not like", value, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoIn(List<String> values) {
            addCriterion("collegeInfo in", values, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoNotIn(List<String> values) {
            addCriterion("collegeInfo not in", values, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoBetween(String value1, String value2) {
            addCriterion("collegeInfo between", value1, value2, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andCollegeInfoNotBetween(String value1, String value2) {
            addCriterion("collegeInfo not between", value1, value2, "collegeInfo");
            return (Criteria) this;
        }

        public Criteria andTrainBackIsNull() {
            addCriterion("trainBack is null");
            return (Criteria) this;
        }

        public Criteria andTrainBackIsNotNull() {
            addCriterion("trainBack is not null");
            return (Criteria) this;
        }

        public Criteria andTrainBackEqualTo(String value) {
            addCriterion("trainBack =", value, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackNotEqualTo(String value) {
            addCriterion("trainBack <>", value, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackGreaterThan(String value) {
            addCriterion("trainBack >", value, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackGreaterThanOrEqualTo(String value) {
            addCriterion("trainBack >=", value, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackLessThan(String value) {
            addCriterion("trainBack <", value, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackLessThanOrEqualTo(String value) {
            addCriterion("trainBack <=", value, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackLike(String value) {
            addCriterion("trainBack like", value, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackNotLike(String value) {
            addCriterion("trainBack not like", value, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackIn(List<String> values) {
            addCriterion("trainBack in", values, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackNotIn(List<String> values) {
            addCriterion("trainBack not in", values, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackBetween(String value1, String value2) {
            addCriterion("trainBack between", value1, value2, "trainBack");
            return (Criteria) this;
        }

        public Criteria andTrainBackNotBetween(String value1, String value2) {
            addCriterion("trainBack not between", value1, value2, "trainBack");
            return (Criteria) this;
        }

        public Criteria andLearnObjIsNull() {
            addCriterion("learnObj is null");
            return (Criteria) this;
        }

        public Criteria andLearnObjIsNotNull() {
            addCriterion("learnObj is not null");
            return (Criteria) this;
        }

        public Criteria andLearnObjEqualTo(String value) {
            addCriterion("learnObj =", value, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjNotEqualTo(String value) {
            addCriterion("learnObj <>", value, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjGreaterThan(String value) {
            addCriterion("learnObj >", value, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjGreaterThanOrEqualTo(String value) {
            addCriterion("learnObj >=", value, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjLessThan(String value) {
            addCriterion("learnObj <", value, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjLessThanOrEqualTo(String value) {
            addCriterion("learnObj <=", value, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjLike(String value) {
            addCriterion("learnObj like", value, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjNotLike(String value) {
            addCriterion("learnObj not like", value, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjIn(List<String> values) {
            addCriterion("learnObj in", values, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjNotIn(List<String> values) {
            addCriterion("learnObj not in", values, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjBetween(String value1, String value2) {
            addCriterion("learnObj between", value1, value2, "learnObj");
            return (Criteria) this;
        }

        public Criteria andLearnObjNotBetween(String value1, String value2) {
            addCriterion("learnObj not between", value1, value2, "learnObj");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureIsNull() {
            addCriterion("trainFeature is null");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureIsNotNull() {
            addCriterion("trainFeature is not null");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureEqualTo(String value) {
            addCriterion("trainFeature =", value, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureNotEqualTo(String value) {
            addCriterion("trainFeature <>", value, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureGreaterThan(String value) {
            addCriterion("trainFeature >", value, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureGreaterThanOrEqualTo(String value) {
            addCriterion("trainFeature >=", value, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureLessThan(String value) {
            addCriterion("trainFeature <", value, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureLessThanOrEqualTo(String value) {
            addCriterion("trainFeature <=", value, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureLike(String value) {
            addCriterion("trainFeature like", value, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureNotLike(String value) {
            addCriterion("trainFeature not like", value, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureIn(List<String> values) {
            addCriterion("trainFeature in", values, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureNotIn(List<String> values) {
            addCriterion("trainFeature not in", values, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureBetween(String value1, String value2) {
            addCriterion("trainFeature between", value1, value2, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andTrainFeatureNotBetween(String value1, String value2) {
            addCriterion("trainFeature not between", value1, value2, "trainFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureIsNull() {
            addCriterion("courseFeature is null");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureIsNotNull() {
            addCriterion("courseFeature is not null");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureEqualTo(String value) {
            addCriterion("courseFeature =", value, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureNotEqualTo(String value) {
            addCriterion("courseFeature <>", value, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureGreaterThan(String value) {
            addCriterion("courseFeature >", value, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureGreaterThanOrEqualTo(String value) {
            addCriterion("courseFeature >=", value, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureLessThan(String value) {
            addCriterion("courseFeature <", value, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureLessThanOrEqualTo(String value) {
            addCriterion("courseFeature <=", value, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureLike(String value) {
            addCriterion("courseFeature like", value, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureNotLike(String value) {
            addCriterion("courseFeature not like", value, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureIn(List<String> values) {
            addCriterion("courseFeature in", values, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureNotIn(List<String> values) {
            addCriterion("courseFeature not in", values, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureBetween(String value1, String value2) {
            addCriterion("courseFeature between", value1, value2, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseFeatureNotBetween(String value1, String value2) {
            addCriterion("courseFeature not between", value1, value2, "courseFeature");
            return (Criteria) this;
        }

        public Criteria andCourseContentIsNull() {
            addCriterion("courseContent is null");
            return (Criteria) this;
        }

        public Criteria andCourseContentIsNotNull() {
            addCriterion("courseContent is not null");
            return (Criteria) this;
        }

        public Criteria andCourseContentEqualTo(String value) {
            addCriterion("courseContent =", value, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentNotEqualTo(String value) {
            addCriterion("courseContent <>", value, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentGreaterThan(String value) {
            addCriterion("courseContent >", value, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentGreaterThanOrEqualTo(String value) {
            addCriterion("courseContent >=", value, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentLessThan(String value) {
            addCriterion("courseContent <", value, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentLessThanOrEqualTo(String value) {
            addCriterion("courseContent <=", value, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentLike(String value) {
            addCriterion("courseContent like", value, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentNotLike(String value) {
            addCriterion("courseContent not like", value, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentIn(List<String> values) {
            addCriterion("courseContent in", values, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentNotIn(List<String> values) {
            addCriterion("courseContent not in", values, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentBetween(String value1, String value2) {
            addCriterion("courseContent between", value1, value2, "courseContent");
            return (Criteria) this;
        }

        public Criteria andCourseContentNotBetween(String value1, String value2) {
            addCriterion("courseContent not between", value1, value2, "courseContent");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoIsNull() {
            addCriterion("presenterInfo is null");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoIsNotNull() {
            addCriterion("presenterInfo is not null");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoEqualTo(String value) {
            addCriterion("presenterInfo =", value, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoNotEqualTo(String value) {
            addCriterion("presenterInfo <>", value, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoGreaterThan(String value) {
            addCriterion("presenterInfo >", value, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoGreaterThanOrEqualTo(String value) {
            addCriterion("presenterInfo >=", value, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoLessThan(String value) {
            addCriterion("presenterInfo <", value, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoLessThanOrEqualTo(String value) {
            addCriterion("presenterInfo <=", value, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoLike(String value) {
            addCriterion("presenterInfo like", value, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoNotLike(String value) {
            addCriterion("presenterInfo not like", value, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoIn(List<String> values) {
            addCriterion("presenterInfo in", values, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoNotIn(List<String> values) {
            addCriterion("presenterInfo not in", values, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoBetween(String value1, String value2) {
            addCriterion("presenterInfo between", value1, value2, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andPresenterInfoNotBetween(String value1, String value2) {
            addCriterion("presenterInfo not between", value1, value2, "presenterInfo");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeIsNull() {
            addCriterion("signBeginTime is null");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeIsNotNull() {
            addCriterion("signBeginTime is not null");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeEqualTo(Date value) {
            addCriterion("signBeginTime =", value, "signBeginTime");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeNotEqualTo(Date value) {
            addCriterion("signBeginTime <>", value, "signBeginTime");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeGreaterThan(Date value) {
            addCriterion("signBeginTime >", value, "signBeginTime");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("signBeginTime >=", value, "signBeginTime");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeLessThan(Date value) {
            addCriterion("signBeginTime <", value, "signBeginTime");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeLessThanOrEqualTo(Date value) {
            addCriterion("signBeginTime <=", value, "signBeginTime");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeIn(List<Date> values) {
            addCriterion("signBeginTime in", values, "signBeginTime");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeNotIn(List<Date> values) {
            addCriterion("signBeginTime not in", values, "signBeginTime");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeBetween(Date value1, Date value2) {
            addCriterion("signBeginTime between", value1, value2, "signBeginTime");
            return (Criteria) this;
        }

        public Criteria andSignBeginTimeNotBetween(Date value1, Date value2) {
            addCriterion("signBeginTime not between", value1, value2, "signBeginTime");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeIsNull() {
            addCriterion("signEndTime is null");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeIsNotNull() {
            addCriterion("signEndTime is not null");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeEqualTo(Date value) {
            addCriterion("signEndTime =", value, "signEndTime");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeNotEqualTo(Date value) {
            addCriterion("signEndTime <>", value, "signEndTime");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeGreaterThan(Date value) {
            addCriterion("signEndTime >", value, "signEndTime");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("signEndTime >=", value, "signEndTime");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeLessThan(Date value) {
            addCriterion("signEndTime <", value, "signEndTime");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("signEndTime <=", value, "signEndTime");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeIn(List<Date> values) {
            addCriterion("signEndTime in", values, "signEndTime");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeNotIn(List<Date> values) {
            addCriterion("signEndTime not in", values, "signEndTime");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeBetween(Date value1, Date value2) {
            addCriterion("signEndTime between", value1, value2, "signEndTime");
            return (Criteria) this;
        }

        public Criteria andSignEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("signEndTime not between", value1, value2, "signEndTime");
            return (Criteria) this;
        }

        public Criteria andFavorPlanIsNull() {
            addCriterion("favorPlan is null");
            return (Criteria) this;
        }

        public Criteria andFavorPlanIsNotNull() {
            addCriterion("favorPlan is not null");
            return (Criteria) this;
        }

        public Criteria andFavorPlanEqualTo(String value) {
            addCriterion("favorPlan =", value, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanNotEqualTo(String value) {
            addCriterion("favorPlan <>", value, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanGreaterThan(String value) {
            addCriterion("favorPlan >", value, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanGreaterThanOrEqualTo(String value) {
            addCriterion("favorPlan >=", value, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanLessThan(String value) {
            addCriterion("favorPlan <", value, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanLessThanOrEqualTo(String value) {
            addCriterion("favorPlan <=", value, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanLike(String value) {
            addCriterion("favorPlan like", value, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanNotLike(String value) {
            addCriterion("favorPlan not like", value, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanIn(List<String> values) {
            addCriterion("favorPlan in", values, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanNotIn(List<String> values) {
            addCriterion("favorPlan not in", values, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanBetween(String value1, String value2) {
            addCriterion("favorPlan between", value1, value2, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andFavorPlanNotBetween(String value1, String value2) {
            addCriterion("favorPlan not between", value1, value2, "favorPlan");
            return (Criteria) this;
        }

        public Criteria andScanNumIsNull() {
            addCriterion("scanNum is null");
            return (Criteria) this;
        }

        public Criteria andScanNumIsNotNull() {
            addCriterion("scanNum is not null");
            return (Criteria) this;
        }

        public Criteria andScanNumEqualTo(Integer value) {
            addCriterion("scanNum =", value, "scanNum");
            return (Criteria) this;
        }

        public Criteria andScanNumNotEqualTo(Integer value) {
            addCriterion("scanNum <>", value, "scanNum");
            return (Criteria) this;
        }

        public Criteria andScanNumGreaterThan(Integer value) {
            addCriterion("scanNum >", value, "scanNum");
            return (Criteria) this;
        }

        public Criteria andScanNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("scanNum >=", value, "scanNum");
            return (Criteria) this;
        }

        public Criteria andScanNumLessThan(Integer value) {
            addCriterion("scanNum <", value, "scanNum");
            return (Criteria) this;
        }

        public Criteria andScanNumLessThanOrEqualTo(Integer value) {
            addCriterion("scanNum <=", value, "scanNum");
            return (Criteria) this;
        }

        public Criteria andScanNumIn(List<Integer> values) {
            addCriterion("scanNum in", values, "scanNum");
            return (Criteria) this;
        }

        public Criteria andScanNumNotIn(List<Integer> values) {
            addCriterion("scanNum not in", values, "scanNum");
            return (Criteria) this;
        }

        public Criteria andScanNumBetween(Integer value1, Integer value2) {
            addCriterion("scanNum between", value1, value2, "scanNum");
            return (Criteria) this;
        }

        public Criteria andScanNumNotBetween(Integer value1, Integer value2) {
            addCriterion("scanNum not between", value1, value2, "scanNum");
            return (Criteria) this;
        }

        public Criteria andCollectNumIsNull() {
            addCriterion("collectNum is null");
            return (Criteria) this;
        }

        public Criteria andCollectNumIsNotNull() {
            addCriterion("collectNum is not null");
            return (Criteria) this;
        }

        public Criteria andCollectNumEqualTo(Integer value) {
            addCriterion("collectNum =", value, "collectNum");
            return (Criteria) this;
        }

        public Criteria andCollectNumNotEqualTo(Integer value) {
            addCriterion("collectNum <>", value, "collectNum");
            return (Criteria) this;
        }

        public Criteria andCollectNumGreaterThan(Integer value) {
            addCriterion("collectNum >", value, "collectNum");
            return (Criteria) this;
        }

        public Criteria andCollectNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("collectNum >=", value, "collectNum");
            return (Criteria) this;
        }

        public Criteria andCollectNumLessThan(Integer value) {
            addCriterion("collectNum <", value, "collectNum");
            return (Criteria) this;
        }

        public Criteria andCollectNumLessThanOrEqualTo(Integer value) {
            addCriterion("collectNum <=", value, "collectNum");
            return (Criteria) this;
        }

        public Criteria andCollectNumIn(List<Integer> values) {
            addCriterion("collectNum in", values, "collectNum");
            return (Criteria) this;
        }

        public Criteria andCollectNumNotIn(List<Integer> values) {
            addCriterion("collectNum not in", values, "collectNum");
            return (Criteria) this;
        }

        public Criteria andCollectNumBetween(Integer value1, Integer value2) {
            addCriterion("collectNum between", value1, value2, "collectNum");
            return (Criteria) this;
        }

        public Criteria andCollectNumNotBetween(Integer value1, Integer value2) {
            addCriterion("collectNum not between", value1, value2, "collectNum");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}